﻿using M.AuditField;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace M.Warehouse.Domain
{
    /// <summary>
    /// 库存管理(入/出/转库)
    /// </summary>
    public class Inventory : AuditFields
    {
        /// <summary>
        /// 库存Id(出库/入库/转库)
        /// </summary>
        [Key]
        public int InventoryId { get; set; }
        /// <summary>
        /// 库存编号(出库/入库/转库)
        /// </summary>
        public string? InventoryNo { get; set; }
        /// <summary>
        /// 库存名称(出库/入库/转库)
        /// </summary>
        public string? InventoryName { get; set; }
        /// <summary>
        /// 库存日期(出库/入库/转库)
        /// </summary>
        public DateTime? InventoryDate { get; set; }
        /// <summary>
        /// 库存数量(出库/入库/转库)
        /// </summary>
        public int? InventoryNum { get; set; }
        /// <summary>
        /// 状态(默认未入库/未出库)
        /// </summary>
        public bool? InventoryState { get; set; }
        /// <summary>
        /// 备注(出库/入库/转库)
        /// </summary>
        public string? InventoryRemark { get; set; }
        /// <summary>
        /// 成品编号(出库/入库/转库)
        /// </summary>
        public string? FinishedProductNo { get; set; }
        /// <summary>
        /// 成品名称(出库/入库/转库)
        /// </summary>
        public string? FinishedProductName { get; set; }
        /// <summary>
        /// 仓库Id(出库/入库/转库)
        /// </summary>
        public int? WarehouseId { get; set; }
        /// <summary>
        /// 库区Id(出库/入库/转库)
        /// </summary>
        public int? ReservoirId { get; set; }
        /// <summary>
        /// 库位Id(出库/入库/转库)
        /// </summary>
        public int? BinLocationId { get; set; }
        /// <summary>
        /// 订单编号(出库/转库)
        /// </summary>
        public string? OrderNo { get; set; }
        /// <summary>
        /// 生产日期(出库/入库/转库)
        /// </summary>
        public DateTime? ProduceDate { get; set; }
        /// <summary>
        /// 调库日期(转库)
        /// </summary>
        public DateTime? AdjustTheLibraryDate { get; set; }
        /// <summary>
        /// 规格型号(出库/入库/转库)
        /// </summary>
        public string? SpecificationNo { get; set; }
        /// <summary>
        /// 生产批次号(出库/入库/转库)
        /// </summary>
        public string? InventoryBatch {  get; set; }
        /// <summary>
        /// 单位(出库/入库/转库)
        /// </summary>
        public string? InventoryUnit { get; set; }
        /// <summary>
        /// 仓库负责人(出库/入库/转库)
        /// </summary>
        public string? WarehouseHead {  get; set; }
        /// <summary>
        /// 库存类型(1:出库 2:入库 3:转库)
        /// </summary>
        public int? InventoryType { get; set; }
    }
}
